package com.zfast.forge.pojo;

import com.zfast.forge.constant.SysConstant;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 控制全局精度
 * @author zgn
 * @Description: MyBigDecimal
 * @date 2024/2/29 0029
 */
public class CustomBigDecimal {

    private static final int DEFAULT_SCALE = SysConstant.scale; // 默认精度
    private static final RoundingMode ROUND_MODE = SysConstant.round_model; // 默认舍入模式

    // 私有构造函数，防止直接实例化
    private CustomBigDecimal() {}

    // 静态工厂方法，用于创建指定值的BigDecimal，并应用默认精度和舍入模式
    public static BigDecimal valueOf(double value) {
        return new BigDecimal(value).setScale(DEFAULT_SCALE, ROUND_MODE);
    }

    // 静态工厂方法，用于创建指定值的BigDecimal，并应用默认精度和舍入模式
    public static BigDecimal valueOf(String value) {
        return new BigDecimal(value).setScale(DEFAULT_SCALE, ROUND_MODE);
    }

    // 静态工厂方法，用于创建指定值的BigDecimal，并应用默认精度和舍入模式
    public static BigDecimal valueOf(BigDecimal value) {
        return value.setScale(DEFAULT_SCALE, ROUND_MODE);
    }

    // 其他可能需要的工厂方法...
}
